quartz: call Gestalt() only once per session in gdk_quartz_osx_version()
authorMichael Natterer <mitch@gimp.org>
Thu, 29 Nov 2012 13:44:04 +0000 (14:44 +0100)
committerMichael Natterer <mitch@gimp.org>
Thu, 29 Nov 2012 14:00:38 +0000 (15:00 +0100)
Thanks to Paul Davis for pointing this out.
(cherry picked from commit d6533ffc44d77b42cce7987f249fa481581b7c50)

gdk/quartz/gdkglobals-quartz.c

index a185d2a79a31660d16131f4a2f607dcb0efca917..c6a7a227bb20488d5cdad5953bc3272c0c7fdd7a 100644 (file)
@@ -28,9 +28,14 @@ GdkWindow *_gdk_root = NULL;
 GdkOSXVersion
 gdk_quartz_osx_version (void)
 {
-  gint minor;
-  OSErr err = Gestalt (gestaltSystemVersionMinor, &minor);
-  g_return_val_if_fail (err == noErr, GDK_OSX_UNSUPPORTED);
+  static gint32 minor = 0;
+
+  if (!minor)
+    {
+      OSErr err = Gestalt (gestaltSystemVersionMinor, (SInt32*)&minor);
+
+      g_return_val_if_fail (err == noErr, GDK_OSX_UNSUPPORTED);
+    }
 
   if (minor < GDK_OSX_MIN)
     return GDK_OSX_UNSUPPORTED;